//webpack的功能扩展
//注册事件，webpack在编译构建的时候，会经历很多的（生命周期，hook,事件）机制

// const webpack = require("webpack");
// const config = require("../webpack.config.js");
// const webpackConfig = require("../webpack.config.js");

// const compiler = webpack(webpackConfig);
// // compiler.hooks
// Object.keys(compiler.hooks).forEach((hookName) => {
//   compiler.hooks[hookName].tap("xixixi", () => {
//     console.log(`run -> ${hookName}`);
//   });
// });

// compiler.run();

class textWebpackPlugin {
  //   constructor(options) {
  //     console.log(options);
  //   }
  //我们的插件如何钩入webpack的complier hook呢？
  //apply函数
  apply(compiler) {
    // compiler.hooks
    // compiler.hooks.emit.tapAsync("textWebpackPlugin", (compilation, cb) => {
    //   console.log(compilation.assets);
    //   compilation.assets["kaikeba.txt"] = {
    //     source: function () {
    //       return "hello kaikeba.txt";
    //     },
    //     size: function () {
    //       return 1024;
    //     },
    //   };
    //   cb();
    // });
    compiler.hooks.compile.tap("textWebpackPlugin", (compilation) => {
      console.log("hello my plugin");
    });
  }
}

module.exports = textWebpackPlugin;
